package com.silentfish.zweb.shiro;

public class ShiroController {

//    /**
//     * 登录成功，进入管理首页
//     */
//    @RequiresPermissions("user")
//    @RequestMapping(value = "${adminPath}")
//    public String index(HttpServletRequest request, HttpServletResponse response) {
//        Principal principal = UserUtils.getPrincipal();
//        List<String> str=commentService.commentList(null);
//        //System.out.println(JsonMapper.toJsonString(str));
//        // 登录成功后，验证码计算器清零
//        isValidateCodeLogin(principal.getLoginName(), false, true);
//
//        if (logger.isDebugEnabled()){
//
//            logger.debug("show index, active session size: {}", sessionDAO.getActiveSessions(false).size());
//        }
//
//        // 如果已登录，再次访问主页，则退出原账号。
//        if (Global.TRUE.equals(Global.getConfig("notAllowRefreshIndex"))){
//
//            String logined = CookieUtils.getCookie(request, "LOGINED");
//            if (org.apache.commons.lang3.StringUtils.isBlank(logined) || "false".equals(logined)){
//
//                CookieUtils.setCookie(response, "LOGINED", "true");
//            }else if (org.apache.commons.lang3.StringUtils.equals(logined, "true")){
//                UserUtils.getSubject().logout();
//
//                return "redirect:" + adminPath + "/login";
//            }
//        }
///
//        return "modules/sys/sysIndex";
//    }
//
//    public static void main(String[] args) {
//        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro/shiro.ini");
//
//        SecurityUtils.setSecurityManager(factory.getInstance());
//        Subject currentUser = SecurityUtils.getSubject();
//        UsernamePasswordToken token = new UsernamePasswordToken("king", "t;stmdtkg");
//        currentUser.login(token);
//
//        Session session = currentUser.getSession();
//        System.out.println(session.getHost());
//        System.out.println(session.getId());
//
//        System.out.println(session.getStartTimestamp());
//        System.out.println(session.getLastAccessTime());
//
//        session.touch();
////        User u = new User();
////        session.setAttribute(u, "King.");
//        Iterator<Object> keyItr = session.getAttributeKeys().iterator();
//        while (keyItr.hasNext()) {
//            System.out.println(session.getAttribute(keyItr.next()));
//        }
//
//    }
//
//    //用户登陆和退出
//    public void testLoginAndLogout() {
//
//        // 创建securityManager工厂，通过ini配置文件创建securityManager工厂
//        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro-first.ini");
//        //创建SecurityManager
//        SecurityManager securityManager = factory.getInstance();
//        //将securityManager设置当前的运行环境中
//        SecurityUtils.setSecurityManager(securityManager);
//        //从SecurityUtils里边创建一个subject
//        Subject subject = SecurityUtils.getSubject();
//        //在认证提交前准备token（令牌）
//        UsernamePasswordToken token = new UsernamePasswordToken("zhangsan", "111111");
//        try{
//            //执行认证提交
//            subject.login(token);
//        } catch (AuthenticationException e) {
//// TODO Auto-generated catch block
//            e.printStackTrace();
//        }
//
//        //是否认证通过
//        boolean isAuthenticated = subject.isAuthenticated();
//        System.out.println("是否认证通过：" + isAuthenticated);
//        //退出操作
//        subject.logout();
//        //是否认证通过
//        isAuthenticated = subject.isAuthenticated();
//        System.out.println("是否认证通过：" + isAuthenticated);
//    }
}